home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 4 / CDPD_IV.bin / e / mailinglists / amigae.0793july.archive / 000049_crash!axion.bt.…uk!D.Higginson_Thu, 22 Jul 93 07:42:09 PST.msg < prev    next >
Internet Message Format  |  1994-05-26  |  5KB

  1. Received: by bkhouse.cts.com (V1.16/Amiga)
  2.     id AA00000; Thu, 22 Jul 93 07:42:09 PST
  3. Received: from zaphod.axion.bt.co.uk by crash.cts.com with smtp
  4.     (Smail3.1.28.1 #15) id m0oJ0lM-00002KC; Thu, 22 Jul 93 06:32 PDT
  5. Received: from elephant.axion.bt.co.uk by zaphod.axion.bt.co.uk with SMTP (PP); Thu, 22 Jul 1993 14:32:06 +0100
  6. Message-Id: <m0oJ0lM-00002KC@crash.cts.com>
  7. Date: Thu, 22 Jul 93 14:32:00 BST
  8. From: D.Higginson@axion.bt.co.uk
  9. To: amigae@bkhouse.cts.com
  10. Cc: D.Higginson@axion.bt.co.uk
  11. Subject: HAM8 mode
  12.  
  13.  
  14. A few people have mailed me wishing information about HAM8
  15. mode, so here goes:
  16.  
  17. (Please feel free to correct me if I say anything that is
  18. untrue, because my Amiga is currently about 230 miles away
  19. -I'm working away from home.)
  20.  
  21. HAM mode is available in 2 forms - the original HAM mode
  22. (HAM6) and the AGA HAM mode (HAM8). Of course you will
  23. need the AGA chips to use HAM8 (A1200/A4000), but HAM6 is
  24. available on all Amigas.
  25.  
  26. The number in the name indicates how many planes are used
  27. to make the image - HAM 6 uses 6 planes. If you don't
  28. understand this, what it basically means is that every
  29. pixel can have a value from 0 to 63. HAM 8 uses 8 planes
  30. which means there are 256 possible values for each pixel.
  31.  
  32. Whichever HAM mode you use, the theory is essentially the
  33. same. One quarter of these values signify a colour in the
  34. same way as other screen modes. So, colours 0-15 in HAM6
  35. are mapped using a palette (like in DPaint). In this way,
  36. HAM6 behaves like a 16 colour screen and HAM8 like a 64
  37. colour screen.
  38.  
  39. The difference lies in the way the other colours are used.
  40. I will explain this using HAM6, and then show you how to
  41. adapt it for HAM8.
  42.  
  43. Colours 16-31 (the second 16 colours) tell the display
  44. chips to modify the amount of BLUE in the colour. The
  45. colour is HELD from the pixel immediately to the left and
  46. the MODIFIED (Hold And Modify). For example, suppose you
  47. have a pixel with value 0, which happens to be black (for
  48. argument's sake). To the right of this is a pixel with
  49. value 24. This tells the system to modify the blue
  50. component. The amount of blue is calculated by subtracting
  51. 16. So, this pixel would have colour $008, or medium blue.
  52.  
  53. Colours 32-47 modify the RED component (if I remember
  54. correctly), and colours 48-63 modify the GREEN component.
  55. These work in the same way, e.g. 32 equals no red, 47
  56. equals maximum red, 48 equals no green, 63 equals maximum
  57. green.
  58.  
  59. It is possible for this to continue across the screen by
  60. modifying each colour component separately. If at any time
  61. a pixel has a value between 0 and 15, the process begins
  62. again, with the colour for that pixel being taken from the
  63. palette.
  64.  
  65. Here is an example. Assume that colour 0 is black ($000),
  66. colour 1 is white ($FFF) and colour 2 is grey ($777) - if
  67. you want to now how to set these it can be done using the
  68. LoadRGB4() Intuition routine - see the example E sources
  69. for ... er ... examples.
  70.  
  71. -----------------------------------------------------
  72. Step (for ref.)      A    B    C    D    E    F    G
  73. X,Y                 0,0  1,0  2,0  3,0  4,0  5,0  6,0
  74. Pixel value (dec)   00   01   22   02   47   57   21
  75. Colour (hex)       $000 $FFF $FF6 $777 $F77 $F97 $F95
  76. -----------------------------------------------------
  77. Colour values here are given as hex value in the standard
  78. Amiga form $RGB. Now I'll explain each step :
  79.  
  80. A: A vlaue of 0 means the pixel gets its colour from the
  81. palette, which as mentioned previously means that in this
  82. case the pixel turns out to be black.
  83.  
  84. B: The same here, a value of 1 is between 0 and 15.
  85.  
  86. C: Here the value is between 16 and 31, so the blue
  87. component is modified. 22 is the 6th number in the range
  88. (counting from 0), so the blue component is changed to 6.
  89. Hence $FFF becomes $FF6.
  90.  
  91. D: A value between 0 and 15 again means that the colour
  92. comes from the palette, which happens to make the pixel
  93. grey ($777) in this case.
  94.  
  95. E: 47 is between 32 and 47, so this time the red component
  96. is changed to $F, so $777 becomes $F77.
  97.  
  98. F: The green component is changed by the number 57. It
  99. does not matter that the previous colour ($F77) is already
  100. modified, changes happen to that colour. $F77 becomes $F97
  101. since 57 is the 9th number between 48 and 63.
  102.  
  103. G: This shows the blue component again being modified.
  104. This time the colour $F95 did not even have one of its
  105. colour components defined by the palette. In other words,
  106. this colour would still be $F95 even if the original
  107. colour from the palette was changed.